package cn.bbs.ba.error;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import cn.bbs.ba.exception.BAException;

public class BAErrorMessage {

    Log log = LogFactory.getLog(BAErrorMessage.class);

    /**
     * 设置错误信息
     * @param strErrorMsgId 错误信息ID
     */
    public static String push(final String strErrorMsgId) {
    	return push(0, strErrorMsgId, "", "", "","");
    }
    
    /**
     * 设置错误信息
     * @param iErrorId 错误区分
     * @param strErrorMsgId 错误信息ID
     */
    public static String push(final int iErrorId, final String strErrorMsgId) {
    	return push(iErrorId, strErrorMsgId, "", "", "","");
    }
    
    /**
     *  设置错误信息
     * @param iErrorId 错误区分
     * @param strErrorMsgId 错误信息ID
     * @param strErrorMsgParm1 参数1
     */
    public static String push(final int iErrorId, final String strErrorMsgId,
            final String strErrorMsgParm1) {
    	return push(iErrorId, strErrorMsgId, strErrorMsgParm1, "", "", "");
    }
    
    /**
     *  设置错误信息
     * @param iErrorId 错误区分
     * @param strErrorMsgId 错误信息ID
     * @param strErrorMsgParm1 参数1
     * @param strErrorMsgParm1 参数2
     */
    public static String push(final int iErrorId, final String strErrorMsgId,
            final String strErrorMsgParm1,
            final String strErrorMsgParm2) {
    	return push(iErrorId, strErrorMsgId, strErrorMsgParm1, strErrorMsgParm2, "", "");
    }
    
    /**
     *  设置错误信息
     * @param iErrorId 错误区分
     * @param strErrorMsgId 错误信息ID
     * @param strErrorMsgParm1 参数1
     * @param strErrorMsgParm1 参数2
     * @param strErrorMsgParm1 参数3
     */
    public static String push(final int iErrorId, final String strErrorMsgId,
            final String strErrorMsgParm1,
            final String strErrorMsgParm2,
            final String strErrorMsgParm3) {
        return push(iErrorId, strErrorMsgId, strErrorMsgParm1, strErrorMsgParm2, strErrorMsgParm3, "");
    }
    
    /**
     *  设置错误信息
     * @param iErrorId 错误区分
     * @param strErrorMsgId 错误信息ID
     * @param strErrorMsgParm1 参数1
     * @param strErrorMsgParm1 参数2
     * @param strErrorMsgParm1 参数3
     * @param strErrorMsgParm1 参数4
     */
    public static String push(final int iErrorId, final String strErrorMsgId,
            final String strErrorMsgParm1,
            final String strErrorMsgParm2,
            final String strErrorMsgParm3,
            final String strErrorMsgParm4) {
    	// 得到错误信息
        DTOMessage dtoMsg = Message.getMsg(strErrorMsgId);
        String strMsgValue = "";
        if (dtoMsg == null) {
//            List<DTOViewMsg> msgLst = ErrorMsg.getMsg();
//            DTOViewMsg dto = new DTOViewMsg();
//            dto.setmsgId("BA0001");
//            dto.setNeiRong("错误信息ID **" + strErrorMsgId + "**没有找到，请确认是不是存在！");
//            dto.setKbn("0");
//            msgLst.add(dto);
        	//strMsgValue = "错误信息ID **" + strErrorMsgId + "**没有找到，请确认是不是存在！";
        	strMsgValue = "ERROR ID **" + strErrorMsgId + "**NOT FOUND！";
        }
        else {
//            List<DTOViewMsg> msgLst = ErrorMsg.getMsg();
//            DTOViewMsg dto = new DTOViewMsg();
//            dto.setmsgId(strErrorMsgId);
            strMsgValue = dtoMsg.getValue();
            strMsgValue = strMsgValue.replaceAll("#1", strErrorMsgParm1);
            strMsgValue = strMsgValue.replaceAll("#2", strErrorMsgParm2);
            strMsgValue = strMsgValue.replaceAll("#3", strErrorMsgParm3);
            strMsgValue = strMsgValue.replaceAll("#4", strErrorMsgParm4);
//            dto.setNeiRong(strMsgValue);
//            dto.setKbn(dtoMsg.getKbn());
//            msgLst.add(dto);
        }
        return strMsgValue;
    }
    
    /**
     * 抛出错误！
     */
    public void breakPoint() {
        List<DTOViewMsg> msgLst = ErrorMsg.getMsg();
        if (msgLst.size() == 0) {
            log.trace("没有错误要抛出！程序没有问题！");
            return;
        }
        throw new BAException();
    }
}
